import Axios from "axios"
import QS from 'qs'


const baseUrls = {
    development: "/api",
    production: "http://127.0.0.1:80",
}
/*
    只为非 协议开头 请求进行统一定义
*/
Axios.defaults.baseURL = baseUrls[process.env.NODE_ENV];

const URLS = {
    typesUrl: "/filmApi/loadTyps.php",
    filmListUrl: "/filmApi/loadFilms.php",
    filmUrl: "/filmApi/loadFilmById.php",
    commentUrl:"/filmApi/loadComments.php",
    addComment:"/filmApi/addComment.php"
}
const errorFun = (error) => {
    window.showTip("请求失败：" + error.message);
}

// 在请求完成并且响应数据之后，在定义的then 执行之前进行的统一的方法回调
// axios.interceptors.response.use(function (response) {
//     // Do something with response data
//     return response;
// }, function (error) {
//     // Do something with response error
//     return Promise.reject(error);
// });

const loadTypes = function () {
    return Axios.get(URLS.typesUrl)
        .then(({ statusText, data }) => {
            if (statusText != "OK") {
                return Promise.reject("请求错误")
            }
            return data
        });

}
const loadFilmsByParams = function (params = {}) {
    // return Axios.get(URLS.filmListUrl,{
    //     params:params
    // }).then(({ statusText, data }) => {
    //         if (statusText != "OK") {
    //             return Promise.reject("请求错误")
    //         }
    //         return data
    //     });
    console.log(params);
    return Axios.post(URLS.filmListUrl, QS.stringify(params))
        .then(({ statusText, data }) => {
            if (statusText != "OK") {
                return Promise.reject("请求错误")
            }
            return data
        });
}
const loadFilmByFilmId = function (params = {}) {
    if (!params.filmId) {
        // 将页面中可预知的错误请求进行拦截阻止
        //    前端项目怎么加速网站访问速度
        //    减少和后端的数据请求次数
        //    节流  == 防抖 节流
        return Promise.reject({message:"参数错误"});
    }
    return Axios.post(URLS.filmUrl, QS.stringify(params))
        .then(({ statusText, data }) => {
            if (statusText != "OK") {
                return Promise.reject("请求错误")
            }
            return data
        });
}
const loadCommentList = function(params={}){
    if (!params.filmId) {
        return Promise.reject({message:"参数错误"});
    }
    return Axios.post(URLS.commentUrl, QS.stringify(params))
        .then(({ statusText, data }) => {
            if (statusText != "OK") {
                return Promise.reject("请求错误")
            }
            return data
        });
}
const addCommentData=function(params={}){
    return Axios.post(URLS.addComment, QS.stringify(params))
        .then(({ statusText, data }) => {
            if (statusText != "OK") {
                return Promise.reject("请求错误")
            }
            return data
        });
}

export default {
    install(Vue) {
        Vue.prototype.$api = {
            loadTypes, loadFilmsByParams,loadFilmByFilmId,loadCommentList,addCommentData
        }
        Vue.prototype.$error = errorFun;
    }
}